Allowing users to categorize and visualize content recommendations

ABSTRACT

Methods and systems are provided for allowing a user to categorize, organize, and/or visualize content recommendations made by the user. Various interactive controls are made available to a user who recommends an item of content, where the controls are designed to allow the user to assign one or more attributes (e.g., characteristics, categories, labels, properties, etc.) to the recommendation. A user can also organize content recommendations into one or more categories that can be customized by the user according to subject-matter, content format, recommendation strength, and the like. The user is also provided with the ability to view his or her content recommendations arranged in various graphical representations.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of, and claims priorityto, U.S. patent application Ser. No. 15/347,588, titled “ALLOWING USERSTO CATEGORIZE AND VISUALIZE CONTENT RECOMMENDATIONS,” filed on Nov. 9,2016, which is a continuation application of, and claims priority to,U.S. patent application Ser. No. 13/397,317, now U.S. Pat. No.9,524,077, titled “ALLOWING USERS TO CATEGORIZE AND VISUALIZE CONTENTRECOMMENDATIONS,” filed on Feb. 15, 2012. The disclosure of theforegoing applications are incorporated herein by reference in theirentirety for all purposes.

The present disclosure generally relates to systems and methods forproviding content to users. More specifically, aspects of the presentdisclosure relate to determining the intent of a user's contentrecommendations by providing the user with the abilities to organize andvisualize such recommendations.

BACKGROUND

As online content continues to grow in both volume and variety,consumers (hereinafter referred to simply as “users”) are presented withan increasing number of opportunities to explore new areas of interestand generally stay informed about things that are important to them.With various Internet-related technologies now providing means for fastand easy communications, a user often shares or exchanges content thathe or she finds enjoyable or useful with other users, such as friends,family, colleagues, and the like.

Because of the wealth of information available and the frequency withwhich such information is shared, it can be difficult for a user torecall all the various content he or she enjoyed and/or suggested toothers.

SUMMARY

This Summary introduces a selection of concepts in a simplified form inorder to provide a basic understanding of some aspects of the presentdisclosure. This Summary is not an extensive overview of the disclosure,and is not intended to identify key or critical elements of thedisclosure or to delineate the scope of the disclosure. This Summarymerely presents some of the concepts of the disclosure as a prelude tothe Detailed Description provided below.

One embodiment of the present disclosure relates to a method comprising:generating, by a server, a user content recommendation based on at leastone component of a content item recommended by a user; receiving datarelating to the user content recommendation; determining candidateattributes applicable to the user content recommendation; providingcandidate attributes for selection; receiving from the user, in responseto the providing, an indication of a selection corresponding to at leastone of the candidate attributes; assigning at least one attribute to theuser content recommendation based on the selection received from theuser; and serving, via a network, a user interface screen to a computingdevice in a format suitable for presentation on the computing device,the user interface screen identifying the at least one attributeassigned to the user content recommendation.

In another embodiment, the method further comprises: receiving anindication that the user recommended content; parsing the recommendedcontent to identify components of the content; and determining candidateattributes for the recommended content based on the parsed components.

In still another embodiment, the method further comprises: receiving anindication that the user recommended content; parsing the recommendedcontent to identify components of the content; using the parsedcomponents of the recommended content to identify similar contentrecommended by the user; and determining candidate attributes for therecommended content based on attributes assigned to the similar contentrecommended by the user.

In another embodiment, the method further comprises mapping thecandidate attributes to the user content recommendation, and storing thecandidates attributes mapped to the user content recommendation.

In yet another embodiment, the step of determining the candidateattributes applicable to the user content recommendation includes, inresponse to receiving the data relating to the user contentrecommendation, retrieving the stored candidate attributes mapped to theuser content recommendation.

Another embodiment of the present disclosure relates to a methodcomprising: receiving, at a server, a request for a contentrecommendation history for a user, the content recommendation historybeing based on content recommendations made by the user; querying theuser to select at least one of a plurality of display properties for thecontent recommendation history; receiving from the user, in response tothe query, a selection corresponding to at least one of the displayproperties; generating a user interface screen based on the selectionreceived from the user, the user interface screen identifying thecontent recommendations made by the user, arranged according to the atleast one display property; and serving, via a network, the userinterface screen to a computing device in a format suitable forpresentation on the computing device.

In another embodiment, the method further comprises: in response toreceiving the request to view the content recommendation history,querying the user to select a group of the content recommendations madeby the user for inclusion in the content recommendation history;receiving from the user, in response to the query, a selectioncorresponding to a group of content recommendations made by the user;generating a user interface screen based on the group of contentrecommendations made by the user, the user interface screen identifyingthe group of content recommendations arranged according to the at leastone display property; and serving, via the network, the user interfacescreen to the computing device in a format suitable for presentation onthe computing device.

In still another embodiment, the method further comprises: querying theuser to select at least one of a plurality of comparison groups ofcontent recommendations for inclusion in the content recommendationhistory; receiving from the user, in response to the query, a selectioncorresponding to at least one of the comparison groups of contentrecommendations; generating a user interface screen based on the groupof content recommendations made by the user and the at least onecomparison group of content recommendations, the user interface screenidentifying both the group of content recommendations made by the userand the at least one comparison group of content recommendations; andserving, via the network, the user interface screen to the computingdevice in a format suitable for presentation on the computing device.

Yet another embodiment of the present disclosure relates to a system foridentifying a component of content recommended by a user, the systemcomprising at least one processor and a computer-readable medium coupledto the at least one processor having instructions stored thereon which,when executed by the at least one processor, causes the at least oneprocessor to: receive a request to assign an attribute to a contentrecommendation made by a user; determine candidate attributes applicableto the content recommendation; query the user to select at least one ofthe candidate attributes to assign to the content recommendation;receive from the user, in response to the query, a selectioncorresponding to at least one of the candidate attributes; assign atleast one attribute to the content recommendation based on the selectionreceived from the user; and serve, via a network, a user interfacescreen to a computing device in a format suitable for presentation onthe computing device, the user interface screen identifying the at leastone attribute assigned to the content recommendation.

In another embodiment, the at least one processor of the system isfurther caused to: receive an indication that the user recommendedcontent; parse the recommended content to identify components of thecontent; and determine candidate attributes for the recommended contentbased on the parsed components.

In another embodiment, the at least one processor of the system isfurther caused to: receive an indication that the user recommendedcontent; parse the recommended content to identify components of thecontent; use the parsed components of the recommended content toidentify similar content recommended by the user; and determinecandidate attributes for the recommended content based on attributesassigned to the similar content recommended by the user.

In still another embodiment, the at least one processor of the system isfurther caused to map the candidate attributes to the contentrecommendation made by the user, and store the candidates attributesmapped to the content recommendation.

In still another embodiment, the at least one processor of the system isfurther caused to, in response to receiving the request to assign anattribute to the content recommendation, retrieve the stored candidateattributes mapped to the content recommendation.

In other embodiments, the methods and systems described herein mayoptionally include one or more of the following features: the usercontent recommendation applies to at least one of the components of therecommended content; the at least one attribute assigned to the usercontent recommendation is one or both of a category for the user contentrecommendation and a strength for the user content recommendation; theat least one comparison group of content recommendations is a group ofcontent recommendations made by at least one other user in a socialnetwork of the user; the at least one comparison group of contentrecommendations is a second group of the content recommendations made bythe user, the second group of the content recommendations beingdifferent from the group of the content recommendations; the pluralityof display properties includes a plurality of graphical representationformats; and/or the plurality of display properties further includes aplurality of attributes of the content recommendations made by the user.

Further scope of applicability of the present disclosure will becomeapparent from the Detailed Description given below. However, it shouldbe understood that the Detailed Description and specific examples, whileindicating preferred embodiments of the disclosure, are given by way ofillustration only, since various changes and modifications within thespirit and scope of the disclosure will become apparent to those skilledin the art from this Detailed Description.

BRIEF DESCRIPTION OF DRAWINGS

These and other objects, features and characteristics of the presentdisclosure will become more apparent to those skilled in the art from astudy of the following Detailed Description in conjunction with theappended claims and drawings, all of which form a part of thisspecification. In the drawings:

FIG. 1 is a block diagram illustrating an example content presentationsystem and surrounding environment in which various embodiments of thepresent disclosure may be implemented.

FIG. 2 is a flowchart illustrating an example method for assigning anattribute to a content recommendation made by a user according to one ormore embodiments described herein.

FIG. 3 is a flowchart illustrating an example method for determiningcandidate attributes to assign to a content recommendation made by auser based on a recommendation history of the user according to one ormore embodiments described herein.

FIG. 4 is a flowchart illustrating an example method for updatingattributes assigned to a content recommendation made by a user andgenerating social content based on the updated attributes according toone or more embodiments described herein.

FIG. 5 is a flowchart illustrating an example method for generating acontent recommendation history for a user and providing the contentrecommendation history for presentation to the user according to one ormore embodiments described herein.

FIG. 6 is an example user interface that includes contentrecommendations made by a user and also one or more controls for theuser to perform actions with or select characteristics for therecommendations according to one or more embodiments described herein.

FIG. 7 is an example user interface that includes contentrecommendations made by a user and also one or more controls for theuser to organize the recommendations according to one or moreembodiments described herein.

FIG. 8 is an example user interface that includes a graphicalrepresentation of a content recommendation history for a user accordingto one or more embodiments described herein.

FIG. 9 is an example user interface that includes a graphicalrepresentation of a content recommendation history for a user accordingto one or more embodiments described herein.

FIG. 10 is a block diagram illustrating an example computing devicearranged for selecting and presenting content according to one or moreembodiments described herein.

The headings provided herein are for convenience only and do notnecessarily affect the scope or meaning of the claimed invention.

In the drawings, the same reference numerals and any acronyms identifyelements or acts with the same or similar structure or functionality forease of understanding and convenience. The drawings will be described indetail in the course of the following Detailed Description.

DETAILED DESCRIPTION

Various embodiments and examples of the present disclosure will now bedescribed. The following description provides specific details for athorough understanding and enabling description of these embodiments andexamples. One skilled in the relevant art will understand, however, thatthe various embodiments of the present disclosure may be practicedwithout many of these details. Likewise, one skilled in the relevant artwill also understand that embodiments of the present disclosure caninclude many other obvious features not described in detail herein.Additionally, some well-known structures or functions may not be shownor described in detail below, so as to avoid unnecessarily obscuring therelevant description.

Embodiments of the present disclosure relate to methods and systems forproviding a user with the abilities to categorize, organize, and/orvisualize his or her content recommendations. A variety of interactivecontrols are made available to a user who recommends content, where thecontrols are designed to allow the user to assign one or more attributes(e.g., characteristics, categories, labels, properties, etc.) to therecommendation. For example, a user who recommends a funny video maywish to assign a strength to the recommendation, where the strengthindicates a level or degree of seriousness to attach to the user'srecommendation (e.g., “strongly recommend,” “slightly recommend,” etc.).

According to some embodiments, a user may also organize his or hercontent recommendations into one or more content recommendation“buckets” (e.g., categories, groups, collections, sets, etc.) that canbe customized by the user according to subject-matter, content format,recommendation strength, and the like. For example, a user may createcontent recommendation buckets such as “News Articles,” “RestaurantReviews,” “Sports,” and “Funny Videos,” which can be used to organize(e.g., categorize, sort, group, etc.) relevant content recommendations.In addition to providing the user, and depending on the implementationone or more other users (e.g., the user's friends or acquaintances in asocial network), with the ability to quickly locate and view aparticular content recommendation made by the user, the contentrecommendation buckets described herein also provide the user withadditional options when utilizing various content recommendationvisualization controls, which are described in further detail below.

In one or more embodiments, a user is also provided with the ability toview (e.g., visualize) his or her content recommendations arranged inany of a variety of forms and according to the user's selectedvisualization preferences. For example, the user may view a contentrecommendation history in which the user's content recommendations arearranged for display to the user in one or more of a variety ofgraphical representations and/or charts, such as line graphs, bubblegraphs, pie charts, etc. Such graphical representations and/or chartsallow the user to, among other things, view his or her contentrecommendations over a period of time, which may or may not be specifiedby the user, and also view various comparisons between the contentrecommendations made by the user and, for example, the contentrecommendations made by one or more other users in a social network ofthe user.

In at least one implementation, the user is provided with one or morecontent recommendation visualization controls whereby the user can makeselections corresponding to particular content recommendations (e.g.,content recommendation buckets that the user has created) to be includedin the user's content recommendation history. These visualizationcontrols may also allow the user to make selections as to variousdisplay preferences, such as graph/chart type, whether to include alegend, start/end dates or date ranges (e.g., “past three months”), aswell as numerous other items relevant to such displays of content.

Additionally, where a user recommends content comprising a plurality ofseparable (e.g., distinguishable, separately identifiable, etc.)components, subjects, features, properties, etc., the methods andsystems described herein allow a user to refine his or herrecommendation by selecting one or more characteristics to be applied orattributed to the recommendation. In this manner a determination can bemade as to the user's intent with regard to the recommendation, andtherefore more detailed social content (e.g., social annotations)generated as a result. The following descriptions of various embodimentsand examples sometimes collectively refer to the components, subjects,features, properties, etc., of content as “content components” or simply“components,” for purposes of brevity.

A user in a social network (e.g., an online community or system thatprovides a forum for users who are in different geographic locations tointeract with each other) may wish to indicate that he or she likes,approves, suggests, or enjoys a particular content item (e.g., an ad orweb page) such that one or more other users in the social network willbe made aware of this indication when they are presented with the samecontent item. Accordingly, the user may make a recommendation of thecontent item.

In at least some embodiments of the present disclosure, a user canrecommend content by interacting with (e.g., selecting) a userrecommendation control (e.g., widget, tool, point, button, etc.)provided for display to the user along with the content. This userrecommendation control may be configured to allow a user to indicate,for example, that he or she recommends, likes, suggests, approves, orhas some other opinion about the content. Depending on theimplementation, the user recommendation control may be configured toallow a user to publish (e.g., make known to one or more other users ina social network and/or more broadly to the public in general) anopinion (e.g., emotion, reaction, perception, impression, view, etc.)that he or she has about the content.

In at least some scenarios a user's recommendation of content may be inthe form of a recommended uniform resource locator (URL) that specifiesthe location of the content. For example, a user may recommend a URL ofa web page or of an ad that the user finds enjoyable or helpful. Whilein some instances the user may intend for his or her recommendation tobe for the entire web page or ad to which the URL points, in otherinstances the user's recommendation relates to a particular component(e.g., an image, a video, a portion of text, etc.), subject (e.g.,Hawaii vacation, 5% discount, pizza, etc.), or characteristic (e.g.,image is in Graphics Interchange Format (GIF) file format, the ad is abanner type ad, etc.) of the web page or ad. Such components, subjects,characteristics, properties, etc., are separable in the sense that theyeach contribute to the content as a whole in one or more ways.

One or more embodiments of the present disclosure relate to providing auser with suggested attributes to assign to a content recommendationbased on components included in the content. Additionally, in someembodiments the suggested attributes may also be based on a contentrecommendation history for the user. As described in greater detailherein, a user's content recommendation history may be used to identifytrends in subject-matter of recommended content, attributes commonlyassigned by the user to content recommendations, as well as numerousother statistical and analytical determinations related to contentrecommended by the user.

At least one embodiment described herein relates to parsing content,such as an advertisement or a web page, received from content publishersto create a database of content components that can be used (e.g.,retrieved, referenced, etc.) to generate a recommendation attributequery (e.g., attribute questionnaire) for presentation to a user. Aswill be described in greater detail herein, each item of contentreceived from a content publisher may be analyzed or parsed to identifyvarious components comprising the content. For example, where thecontent item is an advertisement received from an advertiser, theadvertisement may be parsed for components such as type of business,product/service, location, discount/offer, image/text, and so on.Similarly, where the content received is a web page, the web page may beparsed for images, keywords, ratings, etc. Received content items may bemapped to their respective parsed components and stored in one or moredatabases for use in generating a recommendation attribute query.

In at least some embodiments, content received from content publishersis parsed using conventional parsing techniques. For example, contentcomprising a received web page or advertisement can be crawled (e.g.,using a web crawler or other similar automated computer program capableof scanning, reading or “crawling” a web page, advertisement, and/orother such content to collect information contained therein) and keywordclusters derived therefrom for use in parsing the web page oradvertisement. Additionally, in other embodiments the content publishersor advertisers can provide keywords (e.g., tags) along with the receivedcontent, which can be used to identify the various components comprisingthe content.

Other features of one or more embodiments described herein relate togenerating detailed social annotations for presentation with recommendedcontent (e.g., a web page, an ad, etc.) based on a user's response to arecommendation attribute query. For example, if a user assigns aparticular attribute or characteristic to his or her contentrecommendation, then when the content to which the recommendationapplies is provided to other users in the user's social network (e.g.,other users who are in some type of acquaintance relationship with therecommending user, such as the user's “connections,” “friends,”“circles,” etc.), the content may be presented (e.g., on a display of acomputer or other similar device) in conjunction with an annotationdetailing the attribute or characteristic assigned by the user.

The present disclosure contains some examples described in the contextof advertisements. An advertisement is an entity (e.g., video, audiofile, image, text, etc.) that presents a piece of information to a userand is designed to be used in whole or in part by the user. Ads can beprovided (e.g., presented) to a user in electronic form, such as bannerads on a web page, as ads presented in a user interface associated withan application (e.g., a third-party application running on a userdevice), as ads presented with search results, as ads presented withemails, and the like. Such electronic ads may also contain links toother electronic content including web pages, images, audio files videofiles, etc. Advertisements may also be referred to as “promotionalcontent” or one or more other similar such terms.

When a user makes a request for on-line content, such as a web page, avideo/audio clip, a game, or other online resource, one or more contentrequests can be initiated to retrieve the requested content from contentpublishers for presentation to the user on a user device (e.g., personalcomputer, telephone, personal digital assistant (PDA), televisionsystem, etc.). Examples of content publishers include publishers of websites, search engines that publish search results in response to aquery, and numerous other sources or parties that make informationand/or experiences available for presentation to a user. In somearrangements, one or more additional items of content, such asadvertisements, may be provided along with the requested content. Insuch instances advertisers who provide the advertisements may also beconsidered content publishers.

In at least one scenario a user may be a member of a social networkcomprised of many other users, some of whom share a connection with theuser or are in one of a variety of relations with the user. In such asocial network context, a user may wish to make his or her contentrecommendations available for viewing by one or more other socialnetwork users. Furthermore, the user may also wish to assign one or moreattributes to such content recommendations, where the assignedattributes can be displayed in conjunction with the user's contentrecommendations to clarify and/or provide additional detail about thecontent recommendations.

In at least some embodiments, a recommendation attribute query isprovided for presentation to a user in response to receiving a requestto assign an attribute to a content recommendation made by the user.Depending on the implementation, the recommendation attribute query canbe in the form of a user interface screen overlaid on one or more of theuser's content recommendations, or can be a separate user interfacescreen presented by itself to the user. In either such implementation,the recommendation attribute query may list or otherwise identifyvarious attributes available for the user to select for assignment to aparticular content recommendation indicated by the user. It should beunderstood that the recommendation attribute query described inconnection with various embodiments may also be provided forpresentation in numerous other forms and/or formats in addition to orinstead of the example forms and formats described above.

It should also be noted that the recommendation attribute querydescribed herein may be referred to in numerous other ways in additionto or instead of “recommendation attribute query,” without departingfrom its intended meaning and without limiting any of its featuresand/or functionalities. For example, the recommendation attribute querymay also be referred to as an “attribute questionnaire,” “attributequery”, “recommendation attribute screen,” as well as other identifiers,names and labels similar in nature to those mentioned. Irrespective ofthe term or phrase used to refer to the recommendation attribute query,in the various embodiments described herein the recommendation attributequery allows a user to assign (e.g., select, designate, indicate,identify, choose, etc.) one or more attributes (e.g., characteristics,properties, etc.) to a content recommendation made by the user for atleast the purpose of providing additional clarification and/or detailabout the recommendation.

While some of the examples provided in the present disclosure focusprimarily on content recommendations made by a user where the contentitems to which the recommendations apply are web pages and/oradvertisements, the various features described herein, including contentrecommendation attributes, content recommendation history, socialannotations, and other features presented below can also be used inother contexts and with other types of content, in addition to orinstead of web pages and/or advertisements.

FIG. 1 shows an example content presentation system and surroundingenvironment in which various embodiments described herein may beimplemented. The example system and environment shown includes a userdevice 105, a content management server 110, and a social networkapplication server 115. The example environment also includes a network100, such as a local area network (LAN), a wide area network (WAN), theInternet, or a combination thereof. The network 100 connects the userdevice 105, the content management server 110, the social networkapplication server 115, and can also connect additional devices and/orservers of the same or different type (not shown). The example systemalso includes a components parser 185, a content database 195, a webindex 190, a social content service 157, an annotations log 194, andrecommendation history logs 188. These and other components of thesystem and environment shown in FIG. 1 will be described in greaterdetail below.

In scenarios where the content presentation system of FIG. 1 isimplemented in a more content-specific context, any of the variouscomponents comprising the system may be referred to by numerous othernames or identifiers in addition to or instead of those shown withoutlimiting any of the features or capabilities of these components or ofthe overall system as described herein. As one example, in the contextof selecting and presenting advertisements (sometimes referred to simplyas “ads”), content management server 110 may be referred to as an “admanagement server,” the content publisher interface 160 referred to asan “advertiser publisher interface,” and the content serving front-end165 referred to as an “ad serving front-end.” It should also beunderstood that while the following description of various features ofthe content presentation system sometimes makes reference toadvertisements and/or web pages, other forms of content, including otherforms of sponsored content, may also be selected and provided in thecontent presentation system.

The user device 105 can be any of a number of different electronicdevices under control of a user and capable of requesting and receivingresources. As used herein, a resource is any data that can be providedover the network 100, and can be identified by a resource addressassociated with the resource. Examples of resources include images,video, HTML pages, content (e.g., words, phrases, images, etc.),embedded information such as meta-information and hyperlinks, and alsoembedded instructions, such as JavaScript scripts. Examples of the userdevice 105 can be one or more personal computers, telephones, personaldigital assistants (PDAs), television systems, etc., that are capable ofsending and receiving data over the network 100. The user device 105 canalso be a portable user device, such as a laptop computer, tabletcomputer, mobile communication device (e.g., cell phone, smartphone),and the like, capable of also sending and receiving data over thenetwork 100.

The user device 105 may include one or more web browser tools 120 forviewing and interacting with web pages via a wired or wireless internetconnection and/or via a mobile data exchange connection such ascellular, optical, near field communication, or some combinationthereof. The web browser 120 may include a client content manager 145,designated content space 125, and designated social content andinteraction space 130. The content space 125 may be for the display ofvarious types of content, such as advertisements related to web pagecontent, search results, web-based e-mail, and the like. The designatedsocial content and interaction space 130 may be for the display ofrelevant social network content (e.g., social annotations provided tothe user device 105 via a social network application 150) and varioususer interaction tools, such as a user recommendation control that maybe configured to allow a user to make a recommendation of content toother users in one or more social networks. In at least someembodiments, the user device 105 may also include a computer processingunit (CPU) 140, a memory 135, and a social network application 150.Further details regarding the social network application 150 and theuser recommendation control will be provided below.

The user device 105 may also include one or more applications (notshown), which in some embodiments may be third-party applicationsseparate from (e.g., not associated or affiliated with) the socialnetwork application 150, the content management server 110, and thesocial network application server 115. These applications can consist ofsoftware that runs on the user device 105 and performs certain functionsor tasks for a user, such as providing user interfaces for messagingservices or providing services related to games, videos, or music. Suchan application may also be a mobile application consisting of softwaredesigned to run on a mobile user device, such as a cell phone orsmartphone. Some example types of applications include multimedia (e.g.,video or audio players, graphic or image viewers, etc.), communication(e.g., news or information clients, messaging or e-mail clients, etc.),games, productivity (e.g., calculators, calendars, task managers, etc.),as well as numerous other categories and types. An application runningon the user device 105 may similarly include a client content manager145 and designated content space 125 for the display of content (e.g.,web pages, ads, etc.) related to the application.

Content publishers may directly or indirectly submit, log, maintain, andutilize information in the content management server 110. For example,content publishers may access and/or interact with the contentmanagement server 110 via a content publisher interface (I/F) 160.Additionally, depending on the implementation, content publishers may beable to access and/or interact with the content management server 110 inone or more other ways. In at least some embodiments, contentpublishers, such as advertisers, can provide content to the contentmanagement server 110 via the content publisher interface 160, and thecontent management server 110, in turn, can present the content forpresentation 124 (to the user device 105 using various methods describedin greater detail below. Such content may be presented to the userdevice 105 in response to a content request 122 received at the contentmanagement server 110.

In at least a scenario where the content request 122 received at thecontent management server 110 includes a request for advertisingcontent, the advertisement content provided for presentation 124 may bein the form of graphical ads, such as banner ads, audio ads, video ads,still image ads, text-only ads, as well as ads combining one or more ofany such forms. The content (e.g., ads) received at the contentmanagement server 110, and similarly provided to the user device 105 mayalso include embedded information or data, including links to one ormore web pages, meta-information, and/or machine-executableinstructions.

Although the client content manager 145 is illustrated in FIG. 1 asbeing a part of web browser 120, in some embodiments of the disclosurethe client content manager 145 may be a logically separate unit from theweb browser 120. Additionally, the client content manager 145 may becomeembedded within the web browser 120 and thus may form an integral partof the web browser 120. Similarly, in embodiments where the user device105 contains one or more applications (not shown), the client contentmanager 145 may be contained or embedded within such applications orinstead be a logically separate unit. The client content manager 145manages content for the web browser 120, including sending contentrequests 122 to the content management server 110 and receiving contentfrom the content management server 110 for presentation on (e.g., adisplay (not shown)) of the user device 105. In at least one embodiment,the web browser 120 may request content directly from the contentmanagement server 110, and also receive requested content from thecontent management server 110.

The social network application 150 may be client software running on theuser device 105. In at least some embodiments, the social networkapplication 150 manages a user's personal identification information(e.g., a personal cookie) and data regarding the user's accounts,including a social networking account. In one example, a socialnetworking account is unique to a user, and represents the user forpurposes of the user interacting with the content management server 110and the social network application server 115, as well as for socialnetworking.

In one or more embodiments, the social network application server 115includes front-end server 155 and attributes module 192. The front-endserver 155 may be configured to exchange data and information withsocial content service 157. In some arrangements, the data andinformation exchanged between the front-end server 155 and the socialcontent service 157 may include social annotation information maintainedin one or more social annotations logs 194. Additionally, the front-endserver 155 may be configured to provide a recommendation attributesquery 128 from the social network application server 115 to the userdevice 105.

Furthermore, in at least one embodiment the content recommendationattributes module 192 (identified in the example system of FIG. 1 simplyas “Attributes Module” for purposes of brevity) contained within thesocial network application server 115 is configured to receive from theuser device 105 a response to the attribute query 132, which may be aresponse to recommendation attribute query 128 sent to the user device105 when, e.g., a user wishes to add, remove or change an attribute of acontent recommendation (e.g., a content recommendation generated as aresult of the content recommendation action 126). In someimplementations, the recommendation attribute query 128 may also be sentto the user device 105 for presentation to a user in response to theuser first making a recommendation of content (e.g., by selecting orotherwise interacting with a user recommendation control provided by thesocial network application server 115 to the user device 105 for displayin conjunction with the content).

The content recommendation attributes module 192 may be configured toreceive one or more content recommendation actions 126 from the userdevice 105. In at least one example, a content recommendation action 126may be an indication corresponding to a user's selection of one or morecontent recommendations in conjunction with one or more controls (e.g.,included in a user interface screen provided for display to the user ona display of the user device 105) configured to allow the user toperform a variety of actions or operations on the selected one or morecontent recommendations. Additional details and description about suchcontent recommendations, controls, and user interfaces, in the contextof one or more embodiments of the present disclosure, will be providedbelow.

As will also be further described below, the social network applicationserver 115 may log one or more content recommendation actions 126 (e.g.,a user performing one or more of a variety of actions in-connection witha content recommendation made by the user) in one or more recommendationhistory logs 188. The data stored in the recommendation history logs 188may be used, for example, to generate a content recommendation history136 that may be provided to the user device for display to a user inresponse to the social network application server 115 receiving arequest for the user's content recommendation history 134.

The content management server 110 may also be in communication with acomponents parser 185. In at least some embodiments, the componentsparser 185 may be configured to parse content items received fromcontent publishers (e.g., via the content publisher interface 160) usingone or more conventional parsing techniques. For example, contentcomprising a web page or advertisement received at the contentmanagement server 110 can be crawled by the components parser 185, whichmay be configured as, or configured to implement, a web crawler or othersimilar automated computer program capable of scanning, reading or“crawling” such content.

The components parser 185 may crawl a web page, advertisement, and/orother such content to collect information contained therein and derivekeyword clusters for use in parsing the content. The components parser185 may store data corresponding to parsed content components in one orboth of content database 195 and web index 190. As will be furtherdescribed below, components of a content item parsed out by thecomponents parser 185 may be used as the basis for generating therecommendation attribute query 128 provided to the user device 105 forpresentation to a user in response to the user making a recommendationof the content item (e.g., content recommendation action 126).

In some embodiments content publishers (e.g., advertisers) maysupplement content items provided to the content management server 110(e.g., via the content publisher interface 160) with additionalinformation about the content. For example, a content publisher mayprovide information about one or more tags that can be used to identifyvarious components of a particular content item served by the contentmanagement server 110 to the user device 105. In some arrangements thesetags may be used to generate the recommendation attribute query 128 thatis provided to the user device 105 for presentation to a user inresponse to the user making a recommendation of a content item (e.g.,content recommendation action 126 from the user device 105 to the socialnetwork application server 115) being displayed on the user device 105.

In various embodiments described herein, content may be provided forpresentation 124 in the web browser 120 of the user device 105 inconjunction with a user recommendation control (e.g., widget, tool,button, etc.) and one or more social annotations (e.g., social content).In such embodiments, the user recommendation control and/or the one ormore social annotations (neither of which are shown in the examplesystem of FIG. 1) may be provided for presentation in the designatedsocial content and interaction space 130 of the client content manager145. For example, the social network application server 115 may provide,for display with (e.g., as an overlay on) an item of content providedfor presentation 124 by the content management server 110, a userrecommendation control generated by a social content service 157. Thesocial network application server 115 may be a web-application server,which is a front-end that hosts the social network application 150running on the user device 105 and also the user recommendation controlprovided to the user device 105. The social network application server115 may be configured to exchange authentication credentials (e.g.,content/ad share tokens) and user information with the social contentservice 157 such that the social content service 157 retrieves socialannotations and other related social content and information fromannotations log 194 for use in rendering the user recommendationcontrol.

In any of the embodiments of the present disclosure, conventionalcontent serving methods and systems may be utilized in conjunction withthe various features described herein. Additionally, in at least someembodiments the content management server 110, in response to receivinga content request 122 from the user device 105, identifies one or morecandidate content items (e.g., candidate ads) from the content database195, selects a particular one of the candidate content items, andprovides the selected candidate content item for presentation 124 to theuser device 105. Depending on the implementation, the content managementserver 110 may conduct an auction (e.g., a “content auction” or an “adauction” in the case of advertisements) to determine which candidatecontent item will be selected for presentation 124.

Certain user data may be rendered anonymous in one or more ways beforebeing stored and/or used. In some examples, a user's geographic locationmay be generalized in situations where location information is obtained(e.g., limited to a city, zip code, or state level) so that a particularlocation of a user cannot be determined.

FIG. 2 is a flowchart illustrating an example process for determiningcandidate attributes for a content recommendation made by a user andassigning at least one of the candidate attributes to the contentrecommendation based on a selection received from the user. In one ormore embodiments, when a user recommends a content item (e.g., byselecting or interacting with a user recommendation control (e.g.,widget, tool, button, etc.) provided for display to the user inconjunction with the content item), a content recommendation may begenerated for that user.

For example, a user viewing content such as a news article may indicatethat he or she recommends the news article by selecting a userrecommendation control being displayed in conjunction with the newsarticle. The user's indication that he or she recommends the newsarticle may, according to embodiments described herein, generate a“content recommendation” for the user, where the content recommendationmay be a visible indication that the user recommends the news article.

The illustrative user interface screen shown in FIG. 6 includes oneexample of what may constitute content recommendations made by a user.Among numerous other features, user interface screen 600 includescontent recommendations 620 for user 605 (represented in FIG. 6 as “User1” for purposes of simplicity). As shown in the user interface screen600, the content recommendations 620 are for content items that havebeen recommended by the user 605. Depending on the implementation, thecontent recommendations 620 may be made available (e.g., published ormade visible) to one or more other users (e.g., the user's friends oracquaintances in a social network of the user) in a similar or differentform than they appear in the user interface 600. Further details aboutthe example user interface screen 600, as well as various other featuresshown in FIG. 6 are provided below.

FIGS. 6-9 illustrate example user interfaces, some of which may be usedin various embodiments of the disclosure to implement one or morefeatures of the example processes described below with respect to theflowcharts shown in FIGS. 2-5. Various aspects of the example userinterface screens shown in FIGS. 6-9 may be referenced in thedescriptions of the processes shown in FIGS. 2-5 for purposes of exampleand/or illustration. As such, the user interfaces shown in FIGS. 6-9 areat least partially described in the following paragraphs with additionaldetails of each user interface screen being provided in the subsequentdescriptions of FIGS. 2-5.

As mentioned above, FIGS. 6-9 illustrate example user interface screensincluding components that may be used in implementing one or more of thevarious embodiments of the methods and systems described herein. Thefeatures and components of the illustrative user interface screenspresented in FIGS. 6-9 are described in the context of example contentrecommendations made by a hypothetical user in a social network, such ascontent recommendations 620 made by “User 1” 605 in social network 680as illustrated in user interface screen 600 of FIG. 6. It should beunderstood that the particular subject-matter of the content containedin any of the example user interface screens of FIGS. 6-9, as well asthe arrangement of any of the various components comprising the exampleuser interfaces are for illustrative purposes only, and are not in anyway intended to limit the scope of the present disclosure. It shouldalso be noted that numerous other variations, types, combinations, andarrangements of user interface screens may also be used to implementcertain features of the methods and systems described herein in additionto or instead of the example user interfaces shown in FIGS. 6-9.

FIG. 6 shows an example user interface screen 600 associated with asocial network 680 (e.g., a social content network associated withsocial network application 150 shown in FIG. 1) of a user 605, where theuser interface screen 600 includes numerous components associated withthe social network 680, only some of which are described in the contextof the present disclosure. In one example scenario, the user interface600 may be presented to the user 605 (e.g., provided or served, via anetwork, to a computing device of the user 605 in a format suitable forpresentation on (e.g., a display of) the computing device) in responseto the user 605 selecting a content recommendations tab 610.

In at least the example user interface 600 illustrated in FIG. 6, thecontent recommendations tab 610 is represented as a “+1's” symbol (e.g.,icon, label, indicator, identifier, etc.) It should be understood thatthe content recommendations tab 610 may be represented in numerous otherways in addition to or instead of the “+1's” symbol shown in FIG. 6, andthat the use of such a symbol is not in any way intended to limit thescope of the disclosure. Furthermore, for purposes of brevity and toavoid confusion, the user 605, the social network 680 of the user, andcertain other components included in the user interface screen 600 arenot again identified in the example user interfaces shown in FIGS. 7-9and further described below.

The user interface screen 600 also includes a plurality of contentrecommendations 620 made by the user 605 (sometimes referred to hereinsimply as “User 1” for purposes of describing an example). The userinterface 600 also includes one or more controls (e.g., widgets, tools,buttons, etc.) that may be configured to allow the user 605 to perform avariety of actions involving the content recommendations 620. Forexample, according to at least some embodiments the user interface 600may include one or more recommendation strength controls 615, arecommendation labels control 630, an undo content recommendationcontrol 660 (represented as “Undo +1”), a visualize contentrecommendation history control 650, and/or an organize contentrecommendations control 655. These example controls, as well asadditional features and components of user interface screen 600 will befurther described below.

In at least one embodiment, each of the content recommendations 620 madeby the user 605 may be provided for display in user interface 600 inconjunction with a selection box 635. The selection boxes 635corresponding to the content recommendations 620 may be selected (e.g.,as indicated by the check-marks shown in the user interface 600) by theuser 605 in order to perform various actions with the selected contentrecommendations 620.

For example, the user 605 may select one or more content recommendations620 (e.g., by selecting their respective selection boxes 635) to assigna label 640 using the recommendation labels control 630. While in somearrangements, such as that shown in user interface screen 600, therecommendation labels control 630 may be provided as a drop-down menu,in other arrangements the recommendation labels control 630 may beprovided as one of a variety of other similar menu, tab, options, orcontrol types. The one or more content recommendations 620 selected bythe user 605 may be assigned labels 640 such as “Music”, “News”,“Funny”, “Sports”, as well as numerous other terms or phrases that maybe used to categorize, group, identify, or otherwise associate thecontent recommendations 620. It should be understood that the particularlabels 640 assigned to the content recommendations 620 included in userinterface screen 600 are entirely illustrative in nature, and are not inany way intended to limit the scope of the disclosure.

Furthermore, depending on the particular implementation, various otherterms or phrases may be used to refer to the recommendation labelscontrol 630 and/or the labels 640 without limiting any of the featuresor capabilities of these components or of any other components withwhich they interact or are in some relation to as described herein. Forexample, the labels 640 may instead be referred to as “categories”,“tags”, “buckets”, and/or a variety of other such terms or phrases thatcarry a meaning similar to “labels”. Additionally, the recommendationlabels control 630 may be referred to as “recommendation categoriescontrol”, “recommendation buckets control”, etc.

In at least some embodiments of the disclosure, one or more of thelabels 640 that may be assigned to the content recommendations 620(e.g., one or more of the labels 640 made available for selection by theuser 605 via the recommendation labels control 630) can becustom-created by the user 605. For example, the user 605 may createone, some or all of the labels 640 available for assignment to thecontent recommendations 620 based on his or her preferences with regardto organizing the content recommendations 620, his or her interpretationor perspective on the content underlying the recommendations, and thelike.

In embodiments where the user 605 is provided with the ability to createcustom labels (e.g., one or more of labels 640), the user 605 may alsotailor each customized label's availability for assignment to a contentrecommendation 620. For example, only certain labels 640 may be madeavailable for assignment to a particular content recommendation 620(e.g., via selection from the recommendation labels control 630)depending on one or more components of the content to which theparticular recommendation 620 applies. Accordingly, in addition toproviding the user 605 with the ability to create one or more customizedlabels 640, some embodiments described herein also provide the user 605with the ability to decide which such customized labels will be madeavailable for selection from the recommendation labels control 630.

Additionally, in some embodiments one or more of the labels 640available for assignment (e.g., via selection from the recommendationlabels control 630) to a particular content recommendation 620 may beprovided (e.g., suggested, proposed, etc.) based on what is understoodabout, or can be determined from, the content to which the particularrecommendation is directed. In at least one implementation, the contentto which a given content recommendation 620 applies may be parsed (e.g.,using components parser 185 shown in the example system of FIG. 1) toidentify the various components included in the content.

An example will now be provided to supplement the above descriptions ofvarious features related to providing the user 605 with one or moresuggested labels for assigning to a content recommendation 620. Forpurposes of the present example, reference is made to the contentrecommendation 620 identified as “Local News” in the example userinterface 600.

To assign a label 640 to the “Local News” content recommendation 620 theuser 605 may select the selection box 635 associated with the “LocalNews” content recommendation 620 (e.g., as indicated by the check-markin the selection box 635) and then select the recommendation labelscontrol 630. In at least the example user interface 600, therecommendation labels control 630 is provided in the form of a drop-downmenu containing all of the labels 640 available for the user to selectand assign to the “Local News” content recommendation 620. In otherarrangements, the recommendation labels control 630 may instead beprovided as a separate user interface screen partially or whollyoverlaid on user interface 600, as a scrollable menu button, or as anyof a variety of other menu or control options known in the art.

Continuing with the above example, according to one or more embodimentsdescribed herein, when the user 605 selects the “Local News” contentrecommendation 620, the content to which the recommendation relates maybe parsed (e.g., using the components parser 185 shown in the examplesystem of FIG. 1) to identify various components comprising the content.In one scenario, the “Local News” content recommendation 620 may bedirected to a web page (e.g., located at the hypothetical URL“www.news.com”) containing one or more news articles, images, videos,ads, and/or various other components, all of which may be parsed out andidentified as separable components of the content.

Additionally, in at least one embodiment of the disclosure, the exampleuser interface 600 may also include, for each of the plurality ofcontent recommendations 620 made by the user 605, a recommendationstrength 612 along with one or more recommendation strength controls615. The user 605 may assign a recommendation strength 612 to a givencontent recommendation 620 to indicate, for example, how strongly theuser 605 feels about the particular content recommendation 620. In thismanner, the recommendation strength 612 assigned to a contentrecommendation 620 may also represent or indicate to one or more otherusers 670 in the social network 680 a level of seriousness to attach orotherwise attribute to the content recommendation 620 made by the user605. In one example scenario the recommendation strengths 612 that maybe assigned to a content recommendation 620 include integers fallingwithin the set {−5, −4, . . . , 0, . . . 4, 5}, where a recommendationstrength of “−5” represents a “very weak” recommendation of the relevantcontent and a recommendation strength of “5” represents a “very strong”recommendation of the content.

In one or more embodiments described herein, the user 605 may change therecommendation strength 612 assigned to the content recommendations 620by selecting (e.g., interacting with) one or more recommendationstrength controls 615 provided in conjunction with each recommendationstrength 612. For example, where the user 605 wishes to lower therecommendation strength 612 assigned to a particular contentrecommendation 620, the user 605 may select the downward-facing portion(e.g., arrow) of the recommendation strength controls 615. In anotherimplementation, the recommendation strength 612 assigned to a contentrecommendation 620 may be changed by the user 605 directly entering avalid integer (within the set of integers available to representrecommendation strengths 612) into the corresponding portion of userinterface 600 where the recommendation strength 612 is found.

It should be understood that the example recommendation strengths 612shown in the user interface 600, as well as the various explanationsprovided above with regard to what the recommendations strengths 612assigned to the content recommendations 620 can represent or indicate tothe user 605 and/or to other users 670, are entirely illustrative innature and not intended to limit the scope of the present disclosure inany way. Instead, the recommendation strengths 612 that a user 605 mayassign to his or her content recommendations 620 may be represented innumerous other ways in addition to or instead of the exemplary integersdescribed above. For example, the recommendation strengths 612 mayinstead be descriptive words (e.g., “strong”, “weak”, etc.), singleletters of the alphabet (e.g., “A”, “B”, “C”, etc.), a variety ofsymbols or colors, and/or any combination of these or otherrepresentations. Additionally, the recommendation strength controls 615may be provided in one or more other forms within the user interface 600in addition to or instead of those shown in FIG. 6 and described above.

Furthermore, in some arrangements the example user interface 600 mayalso include, for each of the content recommendations 620 made by theuser 605, one or more comments 625. According to at least oneembodiment, the user 605 may add, remove, and/or change one or morecomments 625 for a content recommendation 620. The user 605 may addcomments 625 to a content recommendation 620 to refine or clarify therecommendation (e.g., “I only like the first image”), to point otherusers 670 to a particular component of the content related to therecommendation (e.g., “The second video is great”), to direct otherusers to one or more related content recommendations 620 made by theuser 605, and to serve a variety of other similar purposes in-connectionwith the content recommendation 620.

The example user interface 600 shown in FIG. 6 may also include, in oneor more implementations, a visualize content recommendation historycontrol 650 (represented as “Visualize +1 History” in user interface600), and/or an organize content recommendations control 655(represented as “Organize Your +1's in user interface 600). Variousdetails about both the visualize content recommendation history control650 and the organize content recommendations control 655 will beprovided below in the context of the example user interface screensillustrated in FIGS. 7-9.

FIG. 7 shows an example user interface screen 700 associated with asocial network of a user (e.g., the social network 680 of user 605 asshown in the example user interface 600 of FIG. 6), where the userinterface screen 700 includes numerous components associated withallowing a user to organize content recommendations 755 (represented as“Organize Your +1's in user interface 700).

In one example scenario, the user interface screen 700 may be presentedto the user (e.g., provided or served, via a network, to a computingdevice of the user in a format suitable for presentation on (e.g., adisplay of) the computing device) in response to the user selecting anorganize content recommendations control (e.g., the organize contentrecommendations control 655 included in the example user interfacescreen 600 shown in FIG. 6). For example, the user interface screen 700may be presented to a user who wishes to organize and/or categorize hisor her content recommendations to make them more easily accessible,searchable, manageable, and the like.

As shown in the user interface screen 700, the user's contentrecommendations 720 may be dragged (e.g., selected by the user and thenmoved) into any of a variety of content recommendation buckets 750. Itshould be understood that the content recommendation buckets 750, whichare represented as “+1 Buckets” in the example user interface 700 ofFIG. 7, may also be referred to as “content recommendation groups”,“content recommendation categories”, “content recommendationassociations”, and/or numerous other terms or phrases similar inmeaning. The phrases “content recommendation buckets” and “+1 Buckets”are exemplary in nature and are not in any way intended to limit thescope of the present disclosure.

In at least the example user interface screen 700, each of the contentrecommendation buckets 750 may include a label 740 and/or a count 745relevant or applicable to the content recommendations 720 associatedtherewith.

The labels 740 shown on the content recommendation buckets 750 may beterms and/or phrases indicative of a category, group, identity, orcommon association relevant to the content recommendations containedtherein. For example, the content recommendation buckets 750 may includelabels 740 such as “News”, “Restaurants”, “Sports”, “Music”, “Videos”,“Travel”, “Technology”, as well as a variety of other such termsdescriptive of the content to which the content recommendationscontained in the bucket apply. In at least one embodiment, the labels740 shown on the content recommendation buckets 750 in FIG. 7 may besimilar to the labels 640 assigned to the content recommendations 620 asshown in the example user interface 600 of FIG. 6. Further, as mentionedabove with respect to FIG. 6, it should also be understood that theparticular labels 740 assigned to the content recommendation buckets 750included in user interface screen 700 are entirely illustrative innature, and are not in any way intended to limit the scope of thedisclosure.

Additionally, the count 745 shown on a content recommendation bucket 750may indicate the number or quantity of content recommendations 720contained in (e.g., associated with) that particular contentrecommendation bucket 750. For example, the “News” contentrecommendation bucket 750 is displayed with a count of “14”, indicatingfourteen content recommendations 720 have been placed/grouped in the“News” recommendation bucket 750.

In at least one embodiment, a content recommendation 720 may be placedor grouped in one or more content recommendation buckets 750 by the user(e.g., by the user selecting and dragging the content recommendation 720to the desired content recommendation buckets 750). In one or more otherembodiments, a content recommendation 720 may be automatically placed orgrouped in one or more relevant content recommendation buckets 750 basedon a determination of the content to which the content recommendation720 applies. In still another embodiment, the user may be queried as towhich, if any, of the content recommendation buckets 750, a particularcontent recommendation 720 should be associated. Further, depending onthe implementation, a particular content recommendation 720 may beassociated with only one of the content recommendation buckets 750 atany given time, or may be associated with multiple contentrecommendation buckets at any given time.

In at least some embodiments of the disclosure, the user may create oneor more a new content recommendation buckets. For example, in at leastthe embodiment shown in FIG. 7, the user may create a new contentrecommendation bucket by dragging and dropping (e.g., selecting andmoving) one or more of the content recommendations 720 to new contentrecommendation bucket area 725, represented in FIG. 7 by broken lines todistinguish it from the existing content recommendation buckets 750. Ina scenario where the user moves (e.g., drags and drops) one of thecontent recommendations 720 to the new content recommendation bucketarea, the user may be queried for a label 740 to assign to thenewly-created content recommendation bucket.

Where a user is queried for a label 740 to assign to a newly-createdcontent recommendation bucket 750, such a query may consist of a requestfor the user to enter a label for the bucket, or select from among agroup or list of labels available to assign to the bucket, or somecombination thereof. In embodiments where the user is queried to selectfrom available labels to assign to the content recommendation bucket750, some or all of the labels available for selection may be based onthe user's indicated preferences with regard to organizing his or hercontent recommendations 720, the user's actions or selections withregard to previously created content recommendation buckets 750, and thelike.

Furthermore, in embodiments where the user is provided with the optionto create custom labels (e.g., one or more of labels 740) for thecontent recommendation buckets 750, the user may also set one or morepreferences for the number (e.g., the count 745) of contentrecommendations 720 that can be placed in the content recommendationbuckets 750. For example, the user may establish (e.g., by selecting anoption or changing a setting) that a given content recommendation bucket750 may only be associated with a certain number of contentrecommendations 720, such that no more content recommendations can beadded to the content recommendation bucket 750 once the count 745 forthe bucket reaches a threshold number (e.g., 20, 30, 50, etc.). Amongother advantages, this option may help the user actively manage his orher content recommendations so as to ensure that older contentrecommendations are periodically updated, removed, re-assigned todifferent buckets, etc., and more recent content recommendations aretaken into considering for purposes of the user's content recommendationhistory. Further details regarding the user's content recommendationhistory will be provided below with respect to the example userinterfaces shown in FIGS. 8 and 9.

FIG. 8 shows an example user interface screen 800 associated with asocial network of a user (e.g., the social network 680 of user 605 asshown in the example user interface 600 of FIG. 6), where the userinterface screen 800 includes numerous components associated withallowing a user to visualize their content recommendation history 805(represented as “Visualize Your +1 History” in user interface 800).

In an example scenario, the user interface screen 800 may be presentedto the user (e.g., provided or served, via a network, to a computingdevice of the user in a format suitable for presentation on (e.g., adisplay of) the computing device) in response to the user selecting avisualize content recommendation history control (e.g., the visualizecontent recommendation history control 650 included in the example userinterface screen 600 shown in FIG. 6). For example, the user interfacescreen 800 may be presented to a user who wishes to view their contentrecommendations over a period or interval of time. In another example,the user interface screen 800 may be presented to a user who wishes tovisualize how their content recommendations compare to those made by oneor more other individuals in the user's social network (e.g., the user'sfriends, acquaintances, other users within a certain geographical area,etc.).

The user interface screen 800 includes a content recommendation history840 for the user along with various components that allow the user toselect (e.g., choose, identify, determine, edit, etc.) specific contentrecommendations or groups of content recommendations to be included in(e.g., used to generate) the content recommendation history 840, andalso customize various display properties that determine the appearanceand display of the content recommendation history 840 in the userinterface 800. In the example user interface screen 800, the user'scontent recommendation history 840 is displayed as a graphicalrepresentation (e.g., as a bubble graph) and also included are severalcomponents in the form of drop-down menus that may be configured toallow the user to make selections for various aspects of the graphicalrepresentation. These illustrative components include x-axis control810, y-axis control 815, graph type control 820, and generate historycontrol 850.

In at least one embodiment, the x-axis control 810 allows the user toselect a variable to assign to the x-axis of the graphicalrepresentation of the user's content recommendation history 840, and they-axis control 815 allows the user to select a variable to assign to they-axis. For example, the variable assigned to the x-axis may be aspecified period of time (e.g., July 2011, June 2011 through August2011, etc.) or particular intervals of time (e.g., each week of theprevious three months) over which the user wishes to view his or hercontent recommendations. Similarly, the variable assigned to the y-axis(e.g., by the user selecting one of a variety of available options fromthe y-axis control 815) may be, for example, a single individual or agroup or population of individuals in the user's social network (e.g.,social network 680 of user 605 included in the example user interface600 as shown in FIG. 6) whose content recommendations the user wishes toincorporate in the content recommendation history 840 for purposes ofcomparison.

The user interface screen 800 may also include a content recommendationsselection menu 830, from which the user may select one or more groups orcategories of content recommendations 825 to be used for generating therecommendation history (e.g., to be used as the data comprising therecommendation history). In at least one embodiment, the contentrecommendations selection menu 830 may include an add group option 835,whereby the user may select a group of content recommendations otherthan those shown in the content recommendations selection menu 830 toinclude in the recommendation history.

The graph type control 820 allows the user to select a format in whichthe content recommendation history 840 is to be presented in the userinterface screen 800. In one embodiment, such as that shown in exampleuser interface screen 800, a “bubble” graph type may be selected fromthe graph type control 820. In another embodiment, such as that shown inexample user interface screen 900 of FIG. 9 (described in greater detailbelow), a “line” graph type may be selected from the graph type control(e.g., graph type control 920 in FIG. 9). It is to be understood thatnumerous other forms of graphical representations or graph types maysimilarly be selected from the graph type control 820 (and/or graph typecontrol 920 as shown in FIG. 9) in addition to or instead of thosedescribed above.

While in some arrangements, such as that shown in the user interfacescreen 800, the x-axis control 810, y-axis control 815, and graph typecontrol 820 are provided as drop-down menus, in other arrangements thesecontrols may be provided as one of a variety of other similar menus,tabs, options, or control types. Furthermore, although the example userinterfaces shown in FIGS. 8 and 9 include graphical representations of auser's content recommendation history (e.g., content recommendationhistories 840 and 940 in FIGS. 8 and 9, respectively), it should beunderstood that a user's content recommendation history may also bevisualized in numerous other formats and/or arrangements in addition toor instead of those shown.

For example, the user's content recommendation history may be visualizedas a timeline of events or a flowchart of discrete occurrences (e.g.,content recommendations made by the user). In another example, theuser's content recommendation history may be viewed as a pie chart or ina table format. The graphical representations of the user's contentrecommendation history as shown in FIGS. 8 and 9 is for illustrativepurposes only, and is not in any way intended to limit the scope of thepresent disclosure.

FIG. 9 shows another example user interface screen 900 associated with asocial network of a user (e.g., the social network 680 of user 605 asshown in the example user interface 600 of FIG. 6), where the userinterface screen 900 includes various components configured for allowinga user to visualize their content recommendation history 905(represented as “Visualize Your +1 History” in user interface 800). Theexample user interface 900 includes many of the same or similarcomponents as those included in the user interface 800 shown in FIG. 8and described above. Therefore, for purposes of brevity, variouscomponents included in the user interface screen 900 that also appear inthe user interface screen 800 will not again be described in detail inthe context of FIG. 9.

Referring back to the flowchart shown in FIG. 2, the process illustratedbegins at step 200 where a content recommendation is generated for auser based on an indication that the user recommended content. In atleast one embodiment, the indication that the user recommended contentmay be received (e.g., at social network application server 115 as shownin FIG. 1) as a result of the user selecting or interacting with a userrecommendation control (e.g., widget, tool, button, etc.) provided fordisplay to the user in conjunction with the content that wasrecommended, as described above.

Once an indication has been received that the user recommended content,the process goes to step 205 where the recommended content may be parsed(e.g., using components parser 185 as shown in FIG. 1) to identifycomponents of the content. For example, the recommended content may beparsed using one or more conventional parsing techniques, such asimplementing a web crawler or other similar automated computer programcapable of scanning, reading or “crawling” content comprising a web pageor advertisement.

The process moves from parsing the recommended content in step 205 tousing the components identified from the parsing as a basis fordetermining candidate attributes for the corresponding contentrecommendation in step 210. For example, suppose a user recommends a webpage and the web page is parsed to identify components that include alisting of new music releases, a preview of an audio (e.g., song) file,an image of an album cover, a music video clip, and reviews of recentconcerts. With these parsed components, examples of candidate attributesfor the content recommendation that is generated may include “Music”,“Reviews”, or “Videos” as a possible category of the contentrecommendation, “3”, “4”, or “5” as a possible strength of the contentrecommendation (e.g., where it can be determined from previous contentrecommendations made by the user, and/or other available data about theuser, that the user feels a particular way about this type of content),as well as various other relevant characteristics or qualitiesassociated with the content.

In step 215 the candidate attributes determined in step 210 may bemapped to the content recommendation and then this mapping may be storedfor the content recommendation in step 220. In at least one embodiment,the candidate attributes determined for the content recommendation maybe mapped and stored by an attributes module (e.g., attributes module192 of social network application server 115 as shown in FIG. 1) forlater reference and/or retrieval, such as in step 230 of the process,which is further described below.

In step 225 a request is received from the user to assign an attributeto the content recommendation generated in step 200. In one or moreembodiments, the request received from the user in step 225 may includethe user selecting the content recommendation presented to the user in auser interface screen. For example, with reference to the user interfacescreen 600 shown in FIG. 6, the user may request to assign an attributeto a content recommendation by selecting the corresponding selection box635.

The process then continues to step 230 where, in response to receivingthe request from the user in step 225, the user is queried to select oneor more attributes to assign to the content recommendation from thecandidate attributes mapped and stored for the content recommendation insteps 215 and 220 of the process. In at least one embodiment, queryingthe user to select an attribute to assign to the content recommendationin step 230 may include modifying one or more controls included in auser interface screen presented to the user (e.g., one or more of thecontrols included in user interface screen 600 as shown in FIG. 6).

For example, referring to the user interface screen 600 of FIG. 6, inresponse to the user selecting the selection box 635 corresponding tothe content recommendation (which in some embodiments represents thestep of receiving a request from the user to assign an attribute to thecontent recommendation (e.g., step 225)), one or more of the controlsincluded in user interface screen 600, or the available actions/optionsassociated with the controls, may be modified (e.g., removed, locked,substantiated, etc.). In at least some embodiments, modifying thecontrols, or the actions/options associated with the controls, includedin user interface 600 represents querying the user in step 230 of theprocess. For example, in response to the user selecting the selectionbox 635 corresponding to the content recommendation, one or more of therecommendation strength controls 615, recommendation labels control 630,undo content recommendation control 660, etc., may be modified based onthe candidate attributes mapped to the content recommendation.

In step 235, a selection corresponding to one or more of the candidateattributes to assign to the content recommendation is received from theuser. For example, in the context of FIG. 6, after selecting theselection box 635 corresponding to the content recommendation, the usermay select a label to assign to the content recommendation (e.g., byusing the recommendation labels control 630), where the label isselected from a group of labels available for assignment to theparticular content recommendation (e.g., candidate labels, which are oneexample of candidate attributes). The process then moves to step 240where one or more attributes are assigned to the content recommendationbased on the selection received from the user in step 235. For example,the content recommendation may be assigned the label selected by theuser from the recommendation labels control 630.

FIG. 3 is a flowchart illustrating an example process for determiningcandidate attributes to assign to a content recommendation made by auser based on a recommendation history of the user. In accordance withone or more embodiments, steps 300 and 305 of the example processillustrated in FIG. 3 may correspond to steps 200 and 205, respectively,as shown in FIG. 2 and described above. Therefore, for purposes ofbrevity, the generating of a content recommendation in response toreceiving an indication that a user recommended content in step 300 andthen the parsing of the recommended content to identify components ofthe content in step 305 will not be further described in the context ofFIG. 3.

In step 310 of the process, the parsed components may be used toretrieve (e.g., receive, obtain, request, etc.) the user's contentrecommendation history for content similar to the content for which arecommendation indication was received in step 300. For example, theparsed components of the recommended content may be compared tocomponents parsed from previous content recommended by the user, whichmay be stored, for example, in one or more content component databases(e.g., content database 195 and/or web index 190 as shown in FIG. 1).Based on such a comparison of parsed components, content similar to therecommended content may be identified. The user's content recommendationhistory for such similar content may then be retrieved and used in step315 as described below.

In step 315, the user's content recommendation history for similarcontent may be used to determine candidate attributes for the contentrecommendation generated in step 300. The process then continues throughsteps 320 and 325 in a manner similar to the mapping and storing steps(e.g., steps 215 and 220, respectively) of the process illustrated inFIG. 2, which is described in detail above.

FIG. 4 is a flowchart illustrating an example process for determiningone or more attributes assigned to a content recommendation made by auser, and generating social content (e.g., social annotations) based onthe one or more assigned attributes. The process begins in step 400where a request is received from a user to change one or more attributesassigned to a content recommendation of the user. In step 405, thecontent associated with the content recommendation is parsed to identifyor determine any new components of the content. For example, the contentassociated with the content recommendation may have been updated (e.g.,with new components added, old components removed, and/or variouscomponents changed) from the time when the user recommended the content.

The process then moves to step 410 where the candidate attributes mappedto the content recommendation may be updated based on any new componentsidentified from parsing the associated content in step 405. In step 415,the user may be queried to select one or more new attributes, from theupdated candidate attributes mapped to the content recommendation. Instep 420, a selection may be received from the user, where the selectioncorresponds to updated candidate attributes to assign to the contentrecommendation. In step 425 of the process, one or more new attributesmay be assigned to the content recommendation based on the selectionreceived from the user in step 420. In step 425, one or more socialannotations may be updated based on the new attributes assigned, wherethe social annotations are for (e.g., apply to) the content associatedwith the content recommendation.

FIG. 5 is a flowchart illustrating an example process for providing avisual representation of content recommendations made by a user. As withthe above descriptions of the processes shown in FIGS. 2-4, thefollowing description of the process shown in FIG. 5 also makesreferences to the example user interfaces shown in FIGS. 6-9 forpurposes of providing additional explanation by way of illustration. Itshould again be noted that while various features of the example userinterfaces shown in FIGS. 6-9 are described in the context of theprocess shown in FIG. 5, each of these user interfaces is also describedin further detail in the paragraphs above.

The process of FIG. 5 begins at step 500 where a request for a contentrecommendation history is received from a user (e.g., recommendationhistory request 134 received at social network application server 115from user device 105 as shown in FIG. 1). Referring to the example userinterface 600 shown in FIG. 6, a user may make a request for his or hercontent recommendation history by selecting a control (e.g., button,tool, widget, etc.) 650 displayed in conjunction with the user's contentrecommendations 620. In the example user interface 600, such a contentrecommendation history control is represented as a “Visualize +1History” 650 control.

After receiving the request for a content recommendation history in step500, the process moves to step 505 where the user may be queried toselect one or more content recommendations and/or display properties foruse in generating the requested recommendation history. In at least oneembodiment the user may be queried in step 505 by presenting the userwith one of the example user interfaces 800 or 900 shown in FIGS. 8 and9, respectively.

For example, upon selecting the Visualize +1 History control 650, whichin at least one embodiment may constitute step 500 of the process wherea request is received from the user for his or her contentrecommendation history, the user may be presented with either of theexample user interfaces 800 or 900. With reference to the example userinterface 800, the queries made to the user in step 505 may be in theform of drop-down menus from which the user can select various graphicaldisplay properties (e.g., options, choices, preferences, etc.) such asgraph type 820, data type for the x-axis 810, data type for the y-axis815, and the like, for use in generating the requested recommendationhistory. In another example, the queries made to the user in step 505may be in the form of a content recommendations selection menu 830, fromwhich the user may select one or more groups or categories of contentrecommendations 825 to be used as the data comprising the recommendationhistory.

FIG. 10 is a block diagram illustrating an example computing device 1000that is arranged for selecting and presenting an item of content (e.g.,a web page, an advertisement, etc.) to a user or user device inaccordance with one or more embodiments of the present disclosure. In avery basic configuration 1001, computing device 1000 typically includesone or more processors 1010 and system memory 1020. A memory bus 1030may be used for communicating between the processor 1010 and the systemmemory 1020.

Depending on the desired configuration, processor 1010 can be of anytype including but not limited to a microprocessor (μP), amicrocontroller (μC), a digital signal processor (DSP), or anycombination thereof. Processor 1010 may include one or more levels ofcaching, such as a level one cache 1011 and a level two cache 1012, aprocessor core 1013, and registers 1014. The processor core 1013 mayinclude an arithmetic logic unit (ALU), a floating point unit (FPU), adigital signal processing core (DSP Core), or any combination thereof. Amemory controller 1015 can also be used with the processor 1010, or insome embodiments the memory controller 1015 can be an internal part ofthe processor 1010.

Depending on the desired configuration, the system memory 1020 can be ofany type including but not limited to volatile memory (e.g., RAM),non-volatile memory (e.g., ROM, flash memory, etc.) or any combinationthereof. System memory 1020 typically includes an operating system 1021,one or more applications 1022, and program data 1024. In at least someembodiments, application 1022 includes a selection and presentationalgorithm 1023 that is configured to select a content item, and providethat content item to a user device for presentation to a user. Theselection and presentation algorithm is further arranged to identifyannotations (e.g., content associated with a social network of a user)for presentation to a user along with the selected content item.

Program Data 1024 may include selection and presentation data 1025. Insome embodiments, application 1022 can be arranged to operate withprogram data 1024 on an operating system 1021 such that a request madeby a user of a user device (e.g., user device 105 shown in FIG. 1) isrouted via a social network application (e.g., social networkapplication 150 shown in FIG. 1), which acts as a proxy for transmittingsuch requests to an appropriate server.

Computing device 1000 can have additional features and/or functionality,and additional interfaces to facilitate communications between the basicconfiguration 1001 and any required devices and interfaces. For example,a bus/interface controller 1040 can be used to facilitate communicationsbetween the basic configuration 1001 and one or more data storagedevices 1050 via a storage interface bus 1041. The data storage devices1050 can be removable storage devices 1051, non-removable storagedevices 1052, or any combination thereof. Examples of removable storageand non-removable storage devices include magnetic disk devices such asflexible disk drives and hard-disk drives (HDD), optical disk drivessuch as compact disk (CD) drives or digital versatile disk (DVD) drives,solid state drives (SSD), tape drives and the like. Example computerstorage media can include volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information, such as computer readable instructions, data structures,program modules, and/or other data.

System memory 1020, removable storage 1051 and non-removable storage1052 are all examples of computer storage media. Computer storage mediaincludes, but is not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bycomputing device 1000. Any such computer storage media can be part ofcomputing device 1000.

Computing device 1000 can also include an interface bus 1042 forfacilitating communication from various interface devices (e.g., outputinterfaces, peripheral interfaces, communication interfaces, etc.) tothe basic configuration 1001 via the bus/interface controller 1040.Example output devices 1060 include a graphics processing unit 1061 andan audio processing unit 1062, either or both of which can be configuredto communicate to various external devices such as a display or speakersvia one or more A/V ports 1063. Example peripheral interfaces 1070include a serial interface controller 1071 or a parallel interfacecontroller 1072, which can be configured to communicate with externaldevices such as input devices (e.g., keyboard, mouse, pen, voice inputdevice, touch input device, etc.) or other peripheral devices (e.g.,printer, scanner, etc.) via one or more I/O ports 1073. An examplecommunication device 1080 includes a network controller 1081, which canbe arranged to facilitate communications with one or more othercomputing devices 1090 over a network communication (not shown) via oneor more communication ports 1082. The communication connection is oneexample of a communication media. Communication media may typically beembodied by computer readable instructions, data structures, programmodules, or other data in a modulated data signal, such as a carrierwave or other transport mechanism, and includes any information deliverymedia. A “modulated data signal” can be a signal that has one or more ofits characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media can include wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, radiofrequency (RF), infrared (IR) and other wireless media. The termcomputer readable media as used herein can include both storage mediaand communication media.

Computing device 1000 can be implemented as a portion of a small-formfactor portable (or mobile) electronic device such as a cell phone, apersonal data assistant (PDA), a personal media player device, awireless web-watch device, a personal headset device, an applicationspecific device, or a hybrid device that include any of the abovefunctions. Computing device 1000 can also be implemented as a personalcomputer including both laptop computer and non-laptop computerconfigurations.

There is little distinction left between hardware and softwareimplementations of aspects of systems; the use of hardware or softwareis generally (but not always, in that in certain contexts the choicebetween hardware and software can become significant) a design choicerepresenting cost versus efficiency trade-offs. There are variousvehicles by which processes and/or systems and/or other technologiesdescribed herein can be effected (e.g., hardware, software, and/orfirmware), and the preferred vehicle will vary with the context in whichthe processes and/or systems and/or other technologies are deployed. Forexample, if an implementer determines that speed and accuracy areparamount, the implementer may opt for a mainly hardware and/or firmwarevehicle; if flexibility is paramount, the implementer may opt for amainly software implementation. In one or more other scenarios, theimplementer may opt for some combination of hardware, software, and/orfirmware.

The foregoing detailed description has set forth various embodiments ofthe devices and/or processes via the use of block diagrams, flowcharts,and/or examples. Insofar as such block diagrams, flowcharts, and/orexamples contain one or more functions and/or operations, it will beunderstood by those within the art that each function and/or operationwithin such block diagrams, flowcharts, or examples can be implemented,individually and/or collectively, by a wide range of hardware, software,firmware, or virtually any combination thereof.

In one or more embodiments, several portions of the subject matterdescribed herein may be implemented via Application Specific IntegratedCircuits (ASICs), Field Programmable Gate Arrays (FPGAs), digital signalprocessors (DSPs), or other integrated formats. However, those skilledin the art will recognize that some aspects of the embodiments describedherein, in whole or in part, can be equivalently implemented inintegrated circuits, as one or more computer programs running on one ormore computers (e.g., as one or more programs running on one or morecomputer systems), as one or more programs running on one or moreprocessors (e.g., as one or more programs running on one or moremicroprocessors), as firmware, or as virtually any combination thereof.Those skilled in the art will further recognize that designing thecircuitry and/or writing the code for the software and/or firmware wouldbe well within the skill of one of skilled in the art in light of thepresent disclosure.

Additionally, those skilled in the art will appreciate that themechanisms of the subject matter described herein are capable of beingdistributed as a program product in a variety of forms, and that anillustrative embodiment of the subject matter described herein appliesregardless of the particular type of signal-bearing medium used toactually carry out the distribution. Examples of a signal-bearing mediuminclude, but are not limited to, the following: a recordable-type mediumsuch as a floppy disk, a hard disk drive, a Compact Disc (CD), a DigitalVideo Disk (DVD), a digital tape, a computer memory, etc.; and atransmission-type medium such as a digital and/or an analogcommunication medium (e.g., a fiber optic cable, a waveguide, a wiredcommunications link, a wireless communication link, etc.).

Those skilled in the art will also recognize that it is common withinthe art to describe devices and/or processes in the fashion set forthherein, and thereafter use engineering practices to integrate suchdescribed devices and/or processes into data processing systems. Thatis, at least a portion of the devices and/or processes described hereincan be integrated into a data processing system via a reasonable amountof experimentation. Those having skill in the art will recognize that atypical data processing system generally includes one or more of asystem unit housing, a video display device, a memory such as volatileand non-volatile memory, processors such as microprocessors and digitalsignal processors, computational entities such as operating systems,drivers, graphical user interfaces, and applications programs, one ormore interaction devices, such as a touch pad or screen, and/or controlsystems including feedback loops and control motors (e.g., feedback forsensing position and/or velocity; control motors for moving and/oradjusting components and/or quantities). A typical data processingsystem may be implemented utilizing any suitable commercially availablecomponents, such as those typically found in datacomputing/communication and/or network computing/communication systems.

With respect to the use of substantially any plural and/or singularterms herein, those having skill in the art can translate from theplural to the singular and/or from the singular to the plural as isappropriate to the context and/or application. The varioussingular/plural permutations may be expressly set forth herein for sakeof clarity.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopeand spirit being indicated by the following claims.

1. (canceled)
 2. A method comprising: identifying, by a server, usercontent recommendations made by a user through interaction with a userinterface, the user content recommendation specifying a reaction of theuser to a distinct component of a page that includes multiple differentcomponents; detecting interaction with a visualize contentrecommendation history control at a client device; in response todetecting the interaction with the visualize content recommendationhistory control: generating a visualization of the user contentrecommendations that presents a timeline of the user contentrecommendations and, for each content recommendation, text of thedistinct component recommended by the user through the contentrecommendation; and providing the visualization for presentation at theclient device.
 3. The method of claim 2, further comprising providing agraph illustrating content recommendation history for the user over aspecified time period.
 4. The method of claim 2, wherein generating thevisualization comprises generating the visualization to include acomponent that enables the user to select specific contentrecommendations or groups of content recommendations to be included inthe user content recommendations presented at the client device.
 5. Themethod of claim 2, further comprising providing a graph type controlthat enables the user to specify a format in which the user contentrecommendations will be presented.
 6. The method of claim 5, wherein theformat is one of a pie chart or a table format.
 7. The method of claim2, further comprising parsing the user content recommendations toidentify the text of the distinct component recommended by the userthrough the content recommendation.
 8. The method of claim 7, furthercomprising classifying each of the user content recommendations based onthe identified text of the distinct digital component.
 9. A systemcomprising: at least one processor; and a computer-readable mediumcoupled to the at least one processor having instructions stored thereonwhich, when executed by the at least one processor, cause the at leastone processor to perform operations including: identifying user contentrecommendations made by a user through interaction with a userinterface, the user content recommendation specifying a reaction of theuser to a distinct component of a page that includes multiple differentcomponents; detecting interaction with a visualize contentrecommendation history control at a client device; in response todetecting the interaction with the visualize content recommendationhistory control: generating a visualization of the user contentrecommendations that presents a timeline of the user contentrecommendations and, for each content recommendation, text of thedistinct component recommended by the user through the contentrecommendation; and providing the visualization for presentation at theclient device.
 10. The system of claim 9, wherein the instructions causethe one or more processors to perform operations further comprisingproviding a graph illustrating content recommendation history for theuser over a specified time period.
 11. The system of claim 9, whereingenerating the visualization comprises generating the visualization toinclude a component that enables the user to select specific contentrecommendations or groups of content recommendations to be included inthe user content recommendations presented at the client device.
 12. Thesystem of claim 9, wherein the instructions cause the one or moreprocessors to perform operations further comprising providing a graphtype control that enables the user to specify a format in which the usercontent recommendations will be presented.
 13. The system of claim 12,wherein the format is one of a pie chart or a table format.
 14. Thesystem of claim 9, wherein the instructions cause the one or moreprocessors to perform operations further comprising parsing the usercontent recommendations to identify the text of the distinct componentrecommended by the user through the content recommendation.
 15. Thesystem of claim 14, wherein the instructions cause the one or moreprocessors to perform operations further comprising classifying each ofthe user content recommendations based on the identified text of thedistinct digital component.
 16. A non-transitory computer readablemedium storing instructions that upon execution by one or moreprocessors cause the one or more processors to perform operationscomprising: identifying user content recommendations made by a userthrough interaction with a user interface, the user contentrecommendation specifying a reaction of the user to a distinct componentof a page that includes multiple different components; detectinginteraction with a visualize content recommendation history control at aclient device; in response to detecting the interaction with thevisualize content recommendation history control: generating avisualization of the user content recommendations that presents atimeline of the user content recommendations and, for each contentrecommendation, text of the distinct component recommended by the userthrough the content recommendation; and providing the visualization forpresentation at the client device.
 17. The non-transitory computerreadable medium of claim 16, wherein the instructions cause the one ormore processors to perform operations further comprising providing agraph illustrating content recommendation history for the user over aspecified time period.
 18. The non-transitory computer readable mediumof claim 16, wherein generating the visualization comprises generatingthe visualization to include a component that enables the user to selectspecific content recommendations or groups of content recommendations tobe included in the user content recommendations presented at the clientdevice.
 19. The non-transitory computer readable medium of claim 16,wherein the instructions cause the one or more processors to performoperations further comprising providing a graph type control thatenables the user to specify a format in which the user contentrecommendations will be presented.
 20. The non-transitory computerreadable medium of claim 19, wherein the format is one of a pie chart ora table format.
 21. The non-transitory computer readable medium of claim16, wherein the instructions cause the one or more processors to performoperations further comprising parsing the user content recommendationsto identify the text of the distinct component recommended by the userthrough the content recommendation.